﻿using System;
using System.Collections.Generic;
using System.Net.Mail;

namespace Opentao.NotificationService.Services.EmailService
{
    /// <summary>
    /// Осуществляет почтовую рассылку.
    /// </summary>
    public class Mailer : IDisposable
    {
        private readonly SmtpClient _smtpClient = new SmtpClient();

        /// <summary>
        /// Разослать сообщение по предоставленным адресам.
        /// </summary>
        /// <param name="addresses"> Адреса для отправки. </param>
        /// <param name="subject"> Тема сообщения. </param>
        /// <param name="text"> Текст сообщения. </param>
        public void DistributeMessage(
            List<string> addresses,
            string subject,
            string text )
        {
            var message = new MailMessage {
                                              Body = text,
                                              Subject = subject
                                          };

            addresses.ForEach( a => message.CC.Add( a ) );

            _smtpClient.Send( message );
        }

        /// <summary>
        /// Закрыть установленное соединение.
        /// </summary>
        public void Dispose()
        {
            _smtpClient.Dispose();
        }
    }
}